//
//  main.c
//  博客代码
//
//  Created by 马鹏朔 on 2022/11/5.
//

#include "Bank.h"
void menu(void)
{
    printf("====================欢迎进入小马自动银行服务======================\n");
    printf("--------1.存款  2.取款  3.转账  4.查询余额  5.修改密码  0.退出-----\n");
    printf("==============================================================\n");
    
}
int main()
{
   
    int input=0;
    Bank bank;
       InitBank(&bank);
    char  arr1[20];//表示输入的身份证
    char arr2[20];//表示输入的密码
    printf("请先登入\n");
    printf("输入你的身份证号\n");
    scanf("%s",arr1);
    printf("输入你的密码\n");
    scanf("%s",arr2);
    int ret = Login(  arr1, arr2, &bank, bank.size);//登陆函数用来判断是否存在你输入的用户 返回值可以用int 如果存在返回1失败返回0
    if(ret)//如果返回ret是正值就行可以执行下面功能
    {
        printf("登入成功\n");
    do{
       menu();
        printf("请选你要使用的功能\n");
        scanf("%d",&input);
        switch(input)
        {
            case 1:
                printf("请输入存款的金额");
                double m=0.0;
                scanf("%lf",&m);
                 getBalance(m,ret,&bank);
                //存款
                break;
            case 2:
                printf("请输入要取出的金额");
                double n=0.0;
                scanf ("%lf",&n);
                setBalance(n,ret,&bank);
                //取款
                break;
            case 3:
                printf("输入转账用户的身份证号\n");
                 char arr3[20];//表示输入的身份证
                 char arr4[20];//表示输入的密码
                 scanf("%s",arr3);
                printf("输入你的密码\n");//这里按道理说不应该输入密码但我这是为了方便可以运用登陆判断函数，有兴趣的大佬可以在写一个函数
                 scanf("%s",arr4);
                int ret1=Login(  arr3, arr4, &bank, bank.size);
                if(ret1!=ret)//不能给自己转账呀
                {
                    if(ret)
                    printf("输入转入金额\n");
                    double x;
                    scanf("%lf",&x);
                    Transfer(x,ret1,ret,&bank);
                }
                else{
                    printf("转账失败\n");
                }
                //转账
                break;
            case 4:
                printf("余额为:%.2lf\n",bank.data[ret].balance);
                //查询余额
                break;
            case 5:
                printf("请输入原始密码\n");
                char arr5[20];//来接收原始密码
                scanf("%s",arr5);
                if(strcmp(arr5,bank.data[ret].password)==0)//判断输入是否正确
                {
                    char arr6[20];
                    printf("输入要修改的密码为：\n");
                    scanf("%s",arr6);
                    ChangePassword(arr6,ret,&bank);
                }
                else {
                    printf("密码输入错误\n");
                }
                
                //修改密码
                break;
            case 0:
                printf("退出成功,欢迎下次使用\n");
                break;
            default:
                printf("输入有误请重新输入\n");
                break;
        }
    }while(input);
    }
    else {
        printf("输入错误\n");//否则打印输入错误
    }
    
    return 0;
}
